'''
AppID(小程序ID)：      wx4be6ed11c75aab47
AppSecret(小程序密钥)： 6a2a91f3d10f7f10e6bbb2b35d8ca90a

centos-ego：   root
              123456
百度流量研究院： https://tongji.baidu.com/
云测平台：     https://www.testin.cn/business/landing/test_machine.htm

1、Ego微商微信小程序应用：主要针对于有特色的食品类商品线上零售，通过微信平台的大流量入口，在一定程度上提升特色食品的影响力，
                      同时借助微信的模板消息快速推送更新的商品，实现轻量级应用的 C2C 和 B2B 的线上销售
2、环境部署：
          先找运维申请服务器，运维会安装一个 Linux 系统
          进入 Linxu 系统，先安装 MySQL，再安装 Apache，第三安装 PHP，第四把代码上传到服务中
          按照开发的要求，配置 MySQL、Apache、PHP
          配置完成之后，启动代码
2、微信小程序背景：
              Miniprogram，张小龙 - 微信之父，2017年1月9日，项目在2018年后盛行
              腾讯微信最高级别战略产品（对标支付宝小程序）
              依附于微信，无需再次下载安装的应用程序，取代不常用App应用，释放手机资源
              用户的体验性：无需下载，即用即走
                          功能丰富，清爽体验
                          流量大，易裂变
              常见成熟领域：零售、出行、医疗（衣食住行用）
              https://developers.weixin.qq.com/miniprogram/design/
              总结：易用性、用户体验性
3、设计的局限性：
           大小：小程序支持不超过8M的源码文件（分包加载，单个分包不超过2M）
           逻辑：不适用于复杂的业务处理
           数量：每个应用最多能同时打开5个页面（包含页面跳转）
4、小程序的项目文件构成：
             小程序项目文件   WXML、WXSS、JS      - web项目（HTML、CSS、 JS）
     项目文件分类：
               .json    配置文件
               .wxml    模板文件
               .wxss    样式文件
               .js      逻辑文件
5、小程序通讯模型：
             应用场景：小程序如何与后台进行通讯（做接口测试）
             注意：    小程序无法直接与后台服务器进行通讯
                      必须依附微信（客户端/微信接口服务器）
6、** 微信小程序和APP测试的区别：         ====================================================== 面试
                  微信小程序                      APP
             入口          简单，无需安装              复杂，需要安装
             部署          无需注册，只需授权           需要注册登录
             兼容          兼容各种手机（与微信无关）     不同移动操作系统分别开发
             成本          开发成本费用低               开发成本费用高
             营销          超10亿+的流量入口            自行推广引流

     联系：都是移动端的应用、点对点的服务（B2C、C2C）
     测试关注：
           入口 - 搜索、扫码、分享、卡包
           部署 - 不需要下载安装。授权登录
           兼容 - 微信版本（最新版本、上一个版本）
                 分辨率
7、测试：实际工作时，小程序的测试，是开发上传测试代码，测试得到开发的通知后，打开微信，搜索开发提测的本公司小程序进行（相当于在线上，一个类似于预发布环境）
8、熟悉项目：
         11、步骤：
              ① 项目是干什么的
              ② 项目是给谁用的
              ③ 项目的构成模块有哪些
              ④ 项目的技术栈
         12、基本介绍：
                    项目名称：Ego微商
                    支持功能：Ego微商小程序基于微信平台，实现轻量级应用的B2C的线上特色食品销售平台
                    所属用户：服务对象是全国各地的线上消费者，用户只需通过微信关注对应小程序，在覆盖网络的特定区域都可以实现随心所欲线上
                            特色食品浏览和购物体验
         13、基本模块：
                    ① 主页：主要展示热门商品
                            - 轮播图
                              主题分类
                              新品展示
                    ② 分类：分门别类展示不同商品
                            - 商品分类列表
                              商品分类项
                    ③ 购物车：意向商品选择，存储
                              - 商品列表
                                商品统计
                                下单操作
                    ④ 我的：关联显示个人信息
                            - 基本信息
                              地址管理
                              订单信息
         14、项目技术栈：
                     ① 前端：
                            用户使用交互入口
                            构成组件：WXML + WXSS + JS
                     ② 后端：
                            为前端用户使用提供服务
                            Apache 提供 web 应用服务
                            PHP 语言实现后端接口业务
                     ③ 后端架构：
                               项目框架应用： LAMP
                               构成组件：    Linux + Apache + MySQL + ThinkPHP
                                           CentOS7.x以上    Apache2.4    MySQL5.7  PHP 5.0以上   本地VMware 15.5以上
                               apache配置文件：
                                            路径：/usr/local/apache/conf/extra - httpd-vhosts.conf
                                            作用：告知用户端应该访问哪些端口、哪些地址、哪些路径下的文件
                                                 *：80                                    *-任意主机（（IP/域名）   80-端口号（http请求入口）
                                                 DocumentRoot "/home/wwwroot/default"     Apache上默认搭建项目的根目录
                                                 ServerName _                             默认没有域名（服务器名称）
                                                 Directory "/home/wwwroot/default"        具体某个项目的目录存放地
         15、所需设备及工具：
                     ① 前提条件：      手机/模拟器需要有微信App
                                      WiFi、移动网络
                     ② 测试设备：      真机、模拟器
                     ③ 连接Linux工具： finalshell、xshell、putty、SecureCRT
                     ④ 连接MySQL工具： Navicat、DBeaver
                     ⑤ 抓包工具：      Charles、Fiddler
                     ⑥ 代码调试：      微信开发者工具
         16、专属账号作用：
                     ① 获取微信提供的相关服务的必备账号、密码（APPID 和 APPSecret 配合使用）
                     ② APPID：验证小程序的合法性（公开）
                              小程序的唯一标识（身份证）
                     ③ APPSecret：私有的
                                   确保不能泄露
         17、后台服务器部署步骤：
                           ① 本地部署检查：部署前检查本地网络及环境是否正常（软件版本等信息）
                                           11、确保当前虚拟机连通外网：ping www.baidu.com
                                           12、确认服务器版本：Linux 中输入：cat /etc/redhat-release
                                                                    ifconfig
                           ② 安装应用服务：根据项目要求安装对应的组件服务（软件）
                                           网址：https://lnmp.org/auto.html   - 选中下载的软件及版本 - 复制安装命令
                                           Linux：root权限下 - 粘贴安装命令，运行
                                                  11、检查 Apache 是否运行：systemctl status httpd     （active running：正常运行）
                                                                               start启动、stop停止、restart重启、disable禁用（永久失效）
                                                  12、检查 mysql  是否运行：systemctl status mysql
                                                  13、检查 PHP    是否安装：php -v
                                           安装后，ls，可以看到 lamp_install_log 文件，即安装日志
                                                  tail、cat、less、more 可以查看该日志
                           ③ 上传项目包：服务安装成功后，上传后台项目文件包至服务器（后台开发人员写的代码文件）
                                           11、上传文件包到默认项目路径：  cd /home/wwwroot/default/              或 rz 命令 （yum -y install lrzsz)  rz上传  szwx.php下载
                                                                     把服务端项目 - egoser.zip 拖动到此目录下

                                           12、解压缩项目文件（egoser.zip）到指定项目路径：       unzip egoser.zip
                                           13、修改指定路径下项目对应文件夹（egoser）权限：        chmod -R 777 egoser                   -补充：linux中，usr（存放第三方软件的地方）
                           ④ 数据库初始化：进行数据库数据初始化，达成基本使用（开发编写的系统必备的SQL语句）
                                           11、进入数据库：                     mysql -u root -p
                                           12、创建项目对应数据库（egowx）：      create database egowx charset utf8 collate utf8_general_ci;
                                           13、恢复备份文件
                                               - 在 Linux 下操作：  mysql -uroot -p egowx < /home/wwwroot/default/egoser/ego.sql;
                                               - 在 mysql 下操作：  进入当前数据库：                  use egowx;
                                                                  设置数据库编码为utf8：            set names utf8;
                                                                  直接导入对应路径下项目的.sql文件：  source /home/wwwroot/default/egoser/ego.sql;        -cd egoser ll（可以看到ego.sql文件）
                                                                  退出 mysql：                   exit;
                                           14、navicat 连接linux： 新建MySQL - SSH - 连接名（ego）
                                                              主机 - 192.168.88.128     用户 - root    密码 - 123456
                           ⑤ 修改配置文件：修改配置文件使其服务安装指定要求运行
                                           11、修改apache的配置文件 - httpd-vhosts-conf：
                                                   查找 Apache 配置文件 ： find / -name httpd-vhosts.conf
                                                   Apache 配置文件路径：   cd /usr/local/apache/conf/extra/
                                                   重命名配置文件：        mv httpd-vhosts.conf httpd-vhosts.confd
                                                   上传已配置文件：        rz  （选择服务端项目 - httpd-vhosts.conf - 确定）
                                                   重启 Apache 服务：     systemctl restart httpd
                                                   查看 Apache 的服务状态：systemctl status httpd
                                           12、修改数据库的配置文件 - my.cnf
                                           13、修改服务端（项目本身）的配置文件 - wx.php：
                                                   进入配置文件：    cd /home/wwwroot/default/egoser/application/extra
                                                   编辑 wx.php文件：vi wx.php  - 修改 app_id、app_secret(自己申请的)，并且保存退出
                           ⑥ 重启应用服务：重启应用服务，使其立即生效
                                           11、重启 Apache 服务:              systemctl restart httpd
                                           12、重启 mysql 服务:               systemctl restart mysql
                                           13、查看服务是否正常:                -
                                           14、通过浏览器验证重启后的服务是否正常： http://192.168.88.128/api/v1/banner/1
         18、本地PC虚拟域名修改：
                让虚拟机ip地址和域名对应
                             找到路径：        C:\Windows\System32\drivers\etc
                             hosts 文件添加：  192.168.88.128 e.cn
                             浏览器验证：       http://e.cn/api/v1/banner/1
         19、前端联调验证：
                           ① 客户端配置修改：
                                     - 打开微信开发者工具  - 微信扫码登录 - 新建项目
                                       名称：ego 、文件夹：minipro、appid：测试号（申请的号） - 微信云开发 - 小程序 - 创建
                                           11、修改 app_id ：
                                                           根目录文件：project.config.json
                                                           检查 app_id 是否正确
                                           12、修改 API 接口（请求后台服务器地址）：
                                                           目录：../utils/config.js
                                                           检查 Config.restUrl = 'http://e.cn/api/v1/';
                                           13、右上角 - 详情 - 本地设置 - 勾选（不校验合法域名）
                                           14、保存 - 编译 - 显示页面不转圈（即连通成功）
         20、测试详细操作：
                        ① 分析测试点、编写测试用例
                        ② 主页轮播图：                                                                 banner：       轮播图位置 （img_id：关联图片id /key_word：关联商品id）
                                    11、数据库：ego - egowx - 表:                                       banner_item:  轮播图数量
                                                     banner_item表： 添加（6 71 13 1 1）                image:        图片位置
                                                     image表：       添加（71	/banner-6a.png	1）
                                    12、finalshell：   pwd
                                                      cd /home/wwwroot/default/egoser/public/images
                                                      rz（选择 banner_6a.png)
                                                      chmod 777 banner-6a.png
                        ③ 功能测试：主页导航区、主页展示区、主页操作区、基本业务、购物车业务、业务流程
                        ④ 非功能测试：
                                    11、兼容性：兼容微信版本（当前和上一个）
                                               设备分辨率（UI元素自适应显示）
                                    12、易用性：根据实际客户遵循其专业性
                                               结合功能验证其体验性
                                    13、性能测试：首次加载时间
                                                刷新白屏时间
                                                设备CPU和内存耗费比例
                                    14、弱网测试：WiFi网络正常使用
                                                移动网络正常使用
                                                WiFi和移动网络切换正常使用
                            先功能测试，再非功能测试

'''